# 计数排序函数
def countingSort():
    # 声明全局变量a（待排序数组）和n（数组长度）
    global a, n
    # 找到数组中的最大值，以确定计数数组的大小
    max_num = max(a)
    # 初始化计数数组，长度为最大值加一，所有元素初始化为0
    cnt = [0] * (max_num + 1)
    # 遍历原数组，统计每个元素出现的次数
    for i in range(n):
        cnt[a[i]] += 1
    # 初始化数组索引i
    i = 0
    # 遍历计数数组
    for j in range(max_num + 1):
        # 对于每个元素j，如果其出现次数大于0，则将其写回原数组
        while cnt[j] > 0:
            a[i] = j
            i += 1
            # 减少元素j的计数，表示已处理过一个j
            cnt[j] -= 1

n = int(input())
a = list(map(int, input().split()))
countingSort()
print(*a)
